package dependency

import (
	"context"

	commonSdk "github.com/wangzhe1991/grpc-sdk/pb/common"
	userSdk "github.com/wangzhe1991/grpc-sdk/pb/user"

	userModel "gitee.com/krio/grpc-go-server/dao/model/user"
)

type UserRepository interface {
	Add(ctx context.Context, req *userSdk.UserCreateReq) (*userSdk.UserCreateResp, error)
	Detail(ctx context.Context, userID int32) (*userSdk.UserDetailResp, bool, error)
	List(ctx context.Context, req *userSdk.UserListReq) (*userSdk.UserListResp, error)
	Delete(ctx context.Context, userID int32) (*commonSdk.EmptyResponse, error)
	DetailBySFID(ctx context.Context, userSFIID int64) (*userSdk.UserDetailResp, bool, error)
}

type UserEduRepository interface {
	OneByID(ctx context.Context, userID int32) (*userModel.UserEducation, bool, error)
}

type UserInfoRepository interface {
	OneByID(ctx context.Context, userID int32) (*userModel.UserInfo, bool, error)
}

type UserLoginRepository interface {
	OneByID(ctx context.Context, userID int32) (*userModel.UserLogin, bool, error)
	OneBySFID(ctx context.Context, sFID string) (*userModel.UserLogin, bool, error)
}
